This disclosure relates in general to electronic design automation and, but not by way of limitation, to design verification at different levels of abstraction.
Circuit design is a complex endeavor involving different electronic design automation (EDA) tools, multiple design engineers, many computers, etc. Design teams may be in different locations or even different companies. EDA tools may not consistently work together or have similar understandings of the underlying designs or representations. Coordination of the design as it evolves is complex and difficult to manage. Testing occurs periodically and debugging errors created with recent changes is difficult.
Designers work at different levels of abstraction in the same design to create abstractions, models or representations. Through a mixture of top-down and bottom-up design, it is common to have multiple representations of the same design. Representations at the different levels of abstraction may be changed serially or in parallel, but in any event, the operation can diverge between the two even though they are meant to represent the same design. For each level of abstraction, there is some ability to validate that the representation is operating correctly. Some verification allows checking measured results such as set-up and hold timing violations and others allow viewing waveform signals to assist manual analysis also known as “eyeballing the waveforms.”